{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "score = np.array(\n",
    "[[80, 89, 86, 67, 79],\n",
    "[78, 97, 89, 67, 81],\n",
    "[90, 94, 78, 67, 74],\n",
    "[91, 91, 90, 67, 69],\n",
    "[76, 87, 75, 67, 86],\n",
    "[70, 79, 84, 67, 84],\n",
    "[94, 92, 93, 67, 64],\n",
    "[86, 85, 83, 67, 80]]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[80, 89, 86, 67, 79],\n",
       "       [78, 97, 89, 67, 81],\n",
       "       [90, 94, 78, 67, 74],\n",
       "       [91, 91, 90, 67, 69],\n",
       "       [76, 87, 75, 67, 86],\n",
       "       [70, 79, 84, 67, 84],\n",
       "       [94, 92, 93, 67, 64],\n",
       "       [86, 85, 83, 67, 80]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 424 ms\n",
      "Wall time: 101 ms\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "import time\n",
    "import numpy as np\n",
    "a = []\n",
    "for i in range(100000000):\n",
    "    a.append(random.random())\n",
    "\n",
    "# 通过%time魔法方法, 查看当前行的代码运行一次所花费的时间\n",
    "%time sum1=sum(a)\n",
    "\n",
    "b=np.array(a)\n",
    "\n",
    "%time sum2=np.sum(b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[80, 89, 86, 67, 79],\n",
       "       [78, 97, 89, 67, 81],\n",
       "       [90, 94, 78, 67, 74],\n",
       "       [91, 91, 90, 67, 69],\n",
       "       [76, 87, 75, 67, 86],\n",
       "       [70, 79, 84, 67, 84],\n",
       "       [94, 92, 93, 67, 64],\n",
       "       [86, 85, 83, 67, 80]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8, 5)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score.ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "40"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score.size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score.itemsize"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int32')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=np.array([[1,2,3],[4,5,6]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1, 2, 3],\n",
       "        [4, 5, 6]],\n",
       "\n",
       "       [[1, 2, 3],\n",
       "        [4, 5, 6]]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c=np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])\n",
    "c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=np.array([[1,2,3],[4,5,6]],dtype=np.float64)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 2., 3.],\n",
       "       [4., 5., 6.]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.]])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ones=np.ones([4,8])\n",
    "ones\n",
    "np.zeros_like(ones)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=np.array([[1,2,3],[4,5,6]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "a1=np.array(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a2=np.asarray(a)\n",
    "a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1000,    2,    3],\n",
       "       [   4,    5,    6]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[0,0]=1000\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1000,    2,    3],\n",
       "       [   4,    5,    6]])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linspace(0,100,11)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,\n",
       "       44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,\n",
       "       78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.arange(10,100,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  1.,  10., 100.])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.logspace(0,2,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1=np.random.normal(1.75,1,100000000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.29668169, -0.3483607 ,  2.02520465, ...,  1.18740145,\n",
       "        0.13613157,  3.24980042])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20,8),dpi=100)\n",
    "plt.hist(x1,1000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=np.random.normal(0,1,[4,5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.60539825,  0.79740867,  0.05431414, ...,  0.22897474,\n",
       "        0.28383592, -0.70169225])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x2=np.random.uniform(-1,1,100000000)\n",
    "x2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAAAAAACARsIYAID/3969R2tW1nUA//7klhfAWwopk6wuppFKaIorb+VQYWpqpaYZxsq8kJFZLrp4ydRqKRFeItG1UMzEsswbMlmpJGiCWk2SWSJoBIQY4IUB8emPvU+883LOnPO+531m5sx8Pmu96z1nv7/9nP3O+s1z9tnfd+8NAAAA0JEwBgAAAAAAoCNhDAAAAAAAQEfCGAAAAAAAgI6EMQAAAAAAAB0JYwAAAAAAADoSxgAAAAAAAHQkjAEAAAAAAOhIGAMAAAAAANCRMAYAAAAAAKAjYQwAAAAAAEBHwhgAAAAAAICOhDEA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\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20,8),dpi=100)\n",
    "plt.hist(x2,1000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.92572064, -0.52848146,  1.48252111])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[0,0:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "a1 = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[ 1,  2,  3],\n",
       "        [ 4,  5,  6]],\n",
       "\n",
       "       [[12,  3, 34],\n",
       "        [ 5,  6,  7]]])"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1[1,0,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146,  1.48252111, -1.71783176, -0.09187771],\n",
       "       [-0.58228756, -0.18710063,  1.57424792,  0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415,  0.69635932, -0.00614847,  1.65684401],\n",
       "       [-0.47055441,  0.20237458, -0.32980546, -0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 5)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146,  1.48252111, -1.71783176],\n",
       "       [-0.09187771, -0.58228756, -0.18710063,  1.57424792],\n",
       "       [ 0.96251356,  1.41283558,  2.66686779,  0.01395415],\n",
       "       [ 0.69635932, -0.00614847,  1.65684401, -0.47055441],\n",
       "       [ 0.20237458, -0.32980546, -0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.reshape([5,4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146,  1.48252111, -1.71783176, -0.09187771],\n",
       "       [-0.58228756, -0.18710063,  1.57424792,  0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415,  0.69635932, -0.00614847,  1.65684401],\n",
       "       [-0.47055441,  0.20237458, -0.32980546, -0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146],\n",
       "       [ 1.48252111, -1.71783176],\n",
       "       [-0.09187771, -0.58228756],\n",
       "       [-0.18710063,  1.57424792],\n",
       "       [ 0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415],\n",
       "       [ 0.69635932, -0.00614847],\n",
       "       [ 1.65684401, -0.47055441],\n",
       "       [ 0.20237458, -0.32980546],\n",
       "       [-0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.reshape([-1,2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146,  1.48252111, -1.71783176, -0.09187771,\n",
       "        -0.58228756, -0.18710063,  1.57424792,  0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415,  0.69635932, -0.00614847,  1.65684401,\n",
       "        -0.47055441,  0.20237458, -0.32980546, -0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.reshape([2,-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146,  1.48252111, -1.71783176, -0.09187771],\n",
       "       [-0.58228756, -0.18710063,  1.57424792,  0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415,  0.69635932, -0.00614847,  1.65684401],\n",
       "       [-0.47055441,  0.20237458, -0.32980546, -0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "a.resize([10,2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146],\n",
       "       [ 1.48252111, -1.71783176],\n",
       "       [-0.09187771, -0.58228756],\n",
       "       [-0.18710063,  1.57424792],\n",
       "       [ 0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415],\n",
       "       [ 0.69635932, -0.00614847],\n",
       "       [ 1.65684401, -0.47055441],\n",
       "       [ 0.20237458, -0.32980546],\n",
       "       [-0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064,  1.48252111, -0.09187771, -0.18710063,  0.96251356,\n",
       "         2.66686779,  0.69635932,  1.65684401,  0.20237458, -0.24840229],\n",
       "       [-0.52848146, -1.71783176, -0.58228756,  1.57424792,  1.41283558,\n",
       "         0.01395415, -0.00614847, -0.47055441, -0.32980546,  1.23256262]])"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.92572064, -0.52848146],\n",
       "       [ 1.48252111, -1.71783176],\n",
       "       [-0.09187771, -0.58228756],\n",
       "       [-0.18710063,  1.57424792],\n",
       "       [ 0.96251356,  1.41283558],\n",
       "       [ 2.66686779,  0.01395415],\n",
       "       [ 0.69635932, -0.00614847],\n",
       "       [ 1.65684401, -0.47055441],\n",
       "       [ 0.20237458, -0.32980546],\n",
       "       [-0.24840229,  1.23256262]])"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  0],\n",
       "       [ 1, -1],\n",
       "       [ 0,  0],\n",
       "       [ 0,  1],\n",
       "       [ 0,  1],\n",
       "       [ 2,  0],\n",
       "       [ 0,  0],\n",
       "       [ 1,  0],\n",
       "       [ 0,  0],\n",
       "       [ 0,  1]], dtype=int64)"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.astype(np.int64)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "a3 = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b'\\x01\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x0c\\x00\\x00\\x00\\x03\\x00\\x00\\x00\"\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x07\\x00\\x00\\x00'"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a3.tostring()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    " temp = np.array([[1, 2, 3, 4],[3, 4, 5, 6]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3, 4],\n",
       "       [3, 4, 5, 6]])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5, 6])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.unique(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3, 4],\n",
       "       [3, 4, 5, 6]])"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[74, 70, 72, 59, 90],\n",
       "       [91, 86, 47, 53, 60],\n",
       "       [99, 78, 94, 46, 48],\n",
       "       [59, 46, 71, 97, 60],\n",
       "       [96, 91, 46, 59, 60],\n",
       "       [87, 80, 55, 85, 55],\n",
       "       [97, 72, 55, 80, 81],\n",
       "       [97, 56, 75, 76, 48],\n",
       "       [82, 93, 52, 42, 92],\n",
       "       [60, 45, 43, 53, 83]])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score=np.random.randint(40,100,[10,5])\n",
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[97, 72, 55, 80, 81],\n",
       "       [97, 56, 75, 76, 48],\n",
       "       [82, 93, 52, 42, 92],\n",
       "       [60, 45, 43, 53, 83]])"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_score=score[6:,:]\n",
    "test_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ True,  True, False,  True,  True],\n",
       "       [ True, False,  True,  True, False],\n",
       "       [ True,  True, False, False,  True],\n",
       "       [False, False, False, False,  True]])"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_score>60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_score[test_score>60]=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  1, 55,  1,  1],\n",
       "       [ 1, 56,  1,  1, 48],\n",
       "       [ 1,  1, 52, 42,  1],\n",
       "       [60, 45, 43, 53,  1]])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(score[0:2,:]>60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[74, 70, 72, 59, 90],\n",
       "       [91, 86, 47, 53, 60],\n",
       "       [99, 78, 94, 46, 48],\n",
       "       [59, 46, 71, 97, 60],\n",
       "       [96, 91, 46, 59, 60],\n",
       "       [87, 80, 55, 85, 55],\n",
       "       [ 1,  1, 55,  1,  1],\n",
       "       [ 1, 56,  1,  1, 48],\n",
       "       [ 1,  1, 52, 42,  1],\n",
       "       [60, 45, 43, 53,  1]])"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.any(score[0:2,:] > 90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[74, 70, 72, 59],\n",
       "       [91, 86, 47, 53],\n",
       "       [99, 78, 94, 46],\n",
       "       [59, 46, 71, 97]])"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp=score[:4,:4]\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1, 0],\n",
       "       [1, 1, 0, 0],\n",
       "       [1, 1, 1, 0],\n",
       "       [0, 0, 1, 1]])"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.where(temp>60,1,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1, 0],\n",
       "       [0, 1, 0, 0],\n",
       "       [0, 1, 0, 0],\n",
       "       [0, 0, 1, 0]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.where(np.logical_and(temp>60,temp<90),1,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, 1],\n",
       "       [1, 0, 1, 1],\n",
       "       [1, 0, 1, 1],\n",
       "       [1, 1, 0, 1]])"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.where(np.logical_or(temp<60,temp>90),1,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[74, 70, 72, 59, 90],\n",
       "       [91, 86, 47, 53, 60],\n",
       "       [99, 78, 94, 46, 48],\n",
       "       [59, 46, 71, 97, 60]])"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp=score[:4,:]\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "99"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "70.0"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([99, 86, 94, 97, 90])"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(temp,axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([90, 91, 99, 97])"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(temp,axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "311.2"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([15.46568783, 14.96662955, 16.62828915, 19.74050405, 15.51612065])"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.std(temp,axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 1, 2, 3, 0], dtype=int64)"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(temp,axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [3, 4, 5]])"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a=np.array([[1,2,3],[3,4,5]])\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4, 5, 6],\n",
       "       [6, 7, 8]])"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a+3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.5, 1. , 1.5],\n",
       "       [1.5, 2. , 2.5]])"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3, 1, 2, 3, 1, 2, 3]"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a=[1,2,3]\n",
    "a*3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3]"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "arr1 = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]])\n",
    "arr2 = np.array([[1], [3]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 6)"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 1)"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2, 3, 4, 3, 2, 5],\n",
       "       [8, 9, 4, 5, 6, 4]])"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1+arr2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = np.array([[80, 86],\n",
    " [82, 80],\n",
    " [85, 78],\n",
    " [90, 90],\n",
    " [86, 82],\n",
    " [82, 90],\n",
    " [78, 80],\n",
    " [92, 94]])\n",
    "b = np.array([[0.7], [0.3]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[81.8],\n",
       "       [81.4],\n",
       "       [82.9],\n",
       "       [90. ],\n",
       "       [84.8],\n",
       "       [84.4],\n",
       "       [78.6],\n",
       "       [92.6]])"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[81.8],\n",
       "       [81.4],\n",
       "       [82.9],\n",
       "       [90. ],\n",
       "       [84.8],\n",
       "       [84.4],\n",
       "       [78.6],\n",
       "       [92.6]])"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.matmul(a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[800, 860],\n",
       "       [820, 800],\n",
       "       [850, 780],\n",
       "       [900, 900],\n",
       "       [860, 820],\n",
       "       [820, 900],\n",
       "       [780, 800],\n",
       "       [920, 940]])"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(10,a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
